草庐IT

c++ - 如何使用另一个 DLL 为 Qt 制作第三方插件?

免责声明:在Linux上一切正常。在Windows上,我最近从MinGW更改为MSVC2012,因为我无法正确读取MP3(请参阅MaketheWMFplugincompilewithMinGW.)在我的项目中,我有:核心(DLL)另一个使用Core构建的DLL媒体播放器(Qt应用程序,同时使用DLL和加载插件)为了让我的项目跨平台,我还将Windows特定功能(progressbar,thumbnailbuttons)提取到第3方插件中。事实上,我开始编写一个插件管理器,它在运行时加载/卸载插件并且无需重新启动应用程序,它工作正常。但是自从我切换到MSVC之后,我就不能再构建我的插件了

c++ - Qt widget 背景从 Linux 到 Windows 不同

我要实现一个跨平台的Qt程序。我有一个我不明白的问题:当程序在Windows上执行时,某些小部件的背景颜色不正确。首先,我用C++编写的程序得到了完全相同的结果,所以我认为这不是Python特有的问题。我将我的代码简化为一个显示“错误”的简单程序。我不确定是哪个小部件导致的,所以我简单地包含了实际程序中使用的所有元素。这是它在Linux上的样子:这是背景错误的Windows渲染:代码如下:importsysfromPyQt4.QtGuiimportQApplication,QMainWindow,QVBoxLayout,QTabWidget,QWidget,\QGroupBox,QVB

c++ - Qt 中基于范围的循环出错

获取这些错误:C2143:syntaxerror:missing','before':'C2143:syntaxerror:missing';'before'{'代码如下:voidMainWindow::PrintDir(constQString&str){QDirmDir(str);QStringbuffer;for(QFileInfotemp:mDir.entryInfoList())//firsterror{//seconderrorbuffer+=temp.absoluteFilePath()+"\n";}ui->textEdit->setText(buffer);}我猜原因是

windows - 如何识别 Qt 应用程序/小部件何时被拖过监视器

我基于Qt的应用程序有一个QMainWindow和另一个模态小部件。此模态小部件没有恢复选项。当有多个显示器可用时,允许用户在显示器之间拖动此小部件。但是,当我的小部件很大并且用户将其拖到扩展显示器(通常是分辨率非常低的投影仪)时,小部件对于屏幕而言太大并被剪切。我希望能够检测到用户何时移动到不同的屏幕,以便我可以调整小部件(及其中的内容)的大小以适应新屏幕的尺寸和分辨率。Qt是否为此发出任何信号? 最佳答案 这可能是您正在寻找的函数调用:http://qt-project.org/doc/qt-5/qdesktopwidget.h

windows - 在 Windows 8 上的 Creator 中编译将在 Windows 7 上运行的 Qt 5 应用程序?

我安装了Windows8.1、Qt5.4MSVC2013OpenGL和MSVC2013。我想编译我的应用程序,以便它可以在Windows7中运行。我有几天无法访问Windows7机器,所以我想找到一个方法来增加它运行的机会“只是工作”。我熟悉如何分发Qt应用程序(将DLL复制到应用程序文件夹中),但这始终是Windows7->Windows7部署。是否有编译器目标标志或我必须设置的东西?我需要使用MSVC2012吗?我在我的Windows8.1机器上安装了Windows7.1SDK。谢谢 最佳答案 如果您提供正确的dll并且两者都是

windows - 从 Qt Creator 运行 Git Bash

是否可以为从QtCreator启动GitBash控制台分配快捷方式?例如,我已经将Alt+G,Alt+G分配给GitGui命令。我无法在选项->环境->键盘中找到合适的命令,但也许我只是错过了它。或者是否可以分配快捷方式以从QtCreator启动自定义可执行文件?这对我也适用。现在我需要点击几次才能打开当前项目的GitBash,这有点烦人。 最佳答案 您需要2个.bat文件,为方便起见,您可以将其放在C:\Windows中(因此它们位于%PATH%中)-C:\Windows\StartGitBash.bat包含startStartG

windows - 使用 msvc 为 Windows 构建 Qt - Qmakespec 错误

我正在尝试使用VisualStudio2013静态构建Qt为此,我正在关注theinstructionsprovidedbytheofficialwebsite1)下载、安装ActivePerl5.20并将其添加到PATH。2)qt-everywhere-enterprise-src-5.3.1的存档下载并解压到C:\Qt\Entreprise_23)我打开msvc2013命令提示符,并将目录更改为:C:\Qt\Entreprise_2\qt-everywhere-enterprise-src-5.3.14)从这里开始,我向路径添加了2个新元素:设置路径=C:\Qt\Enterpris

c++ - QT creator 和 Qt(只是它本身)的区别 - 启动 QT

我要求重新确认!(否则不要接受)..因为我是Qt平台的新手,所以我发现它很困惑!!在Windows平台上,您有:Qt5.4.1forWindows32-bit(VS2012,OpenGL)这是一个高达644MB的文件!以及下载中有关“QtCreator”的信息说:BlockquoteQtCreator3.3.1isincludedintheQt5.4.1binarypackages.Ifyouneedastandaloneinstaller,pleaseselectthefileaccordingtoyouroperatingsystemfromthelistbelowtogetthe

c++ - 全局删除? qt应用程序中windows标题的按钮

我正在使用qt在Windows上编写一个C++应用程序,而qt总是放置这个“?”窗口标题中的按钮。目前我正在每个类的构造函数中删除它,这很烦人。有没有办法在一个地方从整个应用程序中全局删除按钮? 最佳答案 没有特定的方法,但如果您需要它用于所有对话框/窗口,您可以创建基类并在其构造函数中取消设置此标志:this->setWindowFlags(this->windowFlags()&~Qt::WindowContextHelpButtonHint);然后在所有对话框中使用这个基本对话框而不是QDialog。

c++ - 仅在 Qt 5.5 中与 RegisterDeviceNotification 链接错误

我升级到Qt5.5和RegisterDeviceNotification调用开始生成链接错误,项目未构建。它仍然使用Qt5.4构建,我在这两种情况下都使用VS2010编译器。boolMainWindow::nativeEvent(constQByteArray&eventType,void*message,long*result){MSG*msg=static_cast(message);intmsgType=msg->message;if(msgType==WM_PAINT){if(!msgp)//OnlythefirstWM_PAINT{GUIDInterfaceClassGuid